package com.dpteam.dao;

import com.dpteam.model.Product;
import com.dpteam.util.Page;

import java.util.List;

/**
 * Created with IntelliJ IDEA.
 * User: luolei
 * Date: 2016/1/7
 * Time: 16:47
 */
public interface ProductDao extends BaseDao<Product> {

    /**
     * 查询所有商品
     *
     * @return
     */
    List<Product> findAllProduct();

    /**
     * 查询所有商品（分页）
     *
     * @return
     */
    List<Product> findAllProductPage(Page page);

    /**
     * 根据条形码查询商品
     *
     * @param barcode
     * @return
     */
    Product findByBarcode(String barcode);

    /**
     * 根据商品名查询商品
     *
     * @param productName
     * @return
     */
    List<Product> findByProductName(String productName);

    /**
     * 根据商品名模糊查询商品,分页
     * @param productName
     * @param page
     * @return
     */
    List<Product> findLikeProductName(String productName, Page page);

    /**
     * 根据商品类别查询所有商品
     *
     * @param categoryId
     * @return
     */
    List<Product> findByCategory(int categoryId);

    /**
     * 根据商品类别查询所有商品（分页）
     *
     * @param categoryId
     * @param page
     * @return
     */
    List<Product> findByCategoryPage(int categoryId, Page page);

    /**
     * 根据提供商查询所有商品
     *
     * @param providerId
     * @return
     */
    List<Product> findByProvider(int providerId);

    /**
     * 根据提供商查询所有商品（分页）
     *
     * @param providerId
     * @param page
     * @return
     */
    List<Product> findByProviderPage(int providerId, Page page);

    void deleteById(int id);
}
